package vistas.ui;

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

import controladores.ControladorBorrarCategoriaFrame;
import controladores.ControladorModificarCategoriaFrame;
import controladores.interfaces.ControladorAdministradorCategorias;
import entidades.Categoria;

public class ModificarCategoriaFrame extends JInternalFrame{

	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	// ATRIBUTOS - componentes
	private JLabel lblNombreCategoriaBuscada;
	private JComboBox cmbNombresCategorias;
	private JLabel lblNuevoNombre;
	private JTextField txtNuevoNombre;
	private JButton btnCambiar;
	private JButton btnCancelar;
	
	// CONSTRUCTOR - levanta la interfaz
	
	public ModificarCategoriaFrame(){
		
		super();
	
		// Caracteristicas de la ventana - Propiedades
		this.setTitle("Modificar categoria");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		this.setSize(400,400);
				
		// Inicializo elementos de la ventana
		lblNombreCategoriaBuscada = new JLabel("Nombre categoria existente: ");
		cmbNombresCategorias = new JComboBox();
		lblNuevoNombre = new JLabel("Nuevo nombre: ");
		txtNuevoNombre = new JTextField();
		btnCambiar = new JButton("Modificar");
		btnCancelar = new JButton("Cancelar");
		
		// Cargo los elementos de la comboBox
		cmbNombresCategorias = new JComboBox();
		ControladorAdministradorCategorias contCategorias = new ControladorBorrarCategoriaFrame();
		Vector<Categoria> categorias = new Vector<Categoria>();
		categorias = contCategorias.obtenerCategorias();
		for(Categoria cat : categorias){
			cmbNombresCategorias.addItem(cat.getNombre());			
		}
		
		
		// Obtencion del content pane
		Container contenedor = this.getContentPane();
		
		// Definicion del layout
		contenedor.setLayout(new GridLayout(3, 2, 5, 5));
		
		// Cargo los elementos en la ventana
		contenedor.add(lblNombreCategoriaBuscada);
		contenedor.add(cmbNombresCategorias);
		contenedor.add(lblNuevoNombre);
		contenedor.add(txtNuevoNombre);
		contenedor.add(btnCancelar);
		contenedor.add(btnCambiar);

		
		// Manejo de los eventos
		btnCancelar.addActionListener(new ActionListener() 
		{			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				dispose();
			}
		});
		
		btnCambiar.addActionListener(new ActionListener() 
		{			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// Meter aca el codigo para realizar la modificacion
				String nombreViejo = (String) cmbNombresCategorias.getSelectedItem();
				String nombreNuevo = txtNuevoNombre.getText();
				ControladorAdministradorCategorias controlador = new ControladorModificarCategoriaFrame();
				controlador.modificarCategoria(nombreViejo, nombreNuevo);
				dispose();
			}
		});
		this.pack();
	}
	
	// METODOS
	
}
